Working with SoftIce
Werkzeuge(tools):
| SoftIce | Das koennt ihr von http://freak-inc.hit.bg/Download.htm runterladen |
Am Anfang werde ich ein paar Woerter ueber Softice sagen:)Softice ist nicht etwas zum Essen,oder ein neuer Film im Kino:)Das ist der bis beste active Debugger von NuMega,der bis jetzt erzeugt ist.Eine kleine aber wesentliche Einzelheit ist,dass er nur fuer Windows95 bestimmt ist und fuer einige Variationen von Windows98,aber nicht fuer alle.Natuerlich gibt es tausende Patches,die Softice sogar auf WindowsXP und 2000,NT starten(Sogar auch auf den Net Servers)Wenn ihr Softice installiet,empfehle ich euch,dass ihr lasst Die Installation euer Autoexec.bat zu modifizieren,dass ihr eure Zeit nicht verliert es von Hand zu machen.Aber wenn ihr darauf beharrt es von Hand zu modifizieren,koennt ihr das machen,wenn ihr eine Zeile in dem Autoexec.bat C:\PROGRA~1\NUMEGA\SOFTIC~1\WINICE.EXE hinzufuegt(was eigentlich den Ort von winice.exe ist).
Einmal installiert,Softice steht ruhig hinter Windows und wartet drauf,dass ihr ihm befehlt zu starten.
Also jetzt fangen wir mit dem angenehmen Teil:Arbeiten mit Softice:)
In der oberen Ecke befinden sich die Flags.Ihr sollt das Folgende sehen.
O D I S Z A P C
| | | |
| | | |
| |
| | | | | +------- Carry
Flag
| | | | | |
+--------- Parity Flag
| | | |
| +----------- Auxiliary Carry Flag
| |
| | +------------- Zero Flag (sehr gebraucht!! )
|
| | +--------------- Sign Flag
| |
+----------------- Interrupt Flag
| +-------------------
Direction Flag
+--------------------- Overflow Flag
Wenn ihr crackt ist es gut auf den Zero Flag zu achten,weil er von den Commands JZ,JNZ,JE und JNE gebraucht wird.
In dem Fenster mit dem Asm Code seht ihr die Adresse,der HEX und ASCI-code.Wenn ihr z.B. schreibt "d 4f9d2b".die Adresse in dem PROT wird sich in 4F9D2B aendern.Und ihr werdet den Inhalt in HEX auf dieser Adresse sehen.
Der naechste Schritt ist,dass wir uns mit den meisten und den wichtigsten Commands in Softice bekannt machen.
| Command mit Beispiel | Erklaerung |
| D 4F92B | Stellt den HEX und den ASCI auf der Adresse 4F92B |
| R EAX 40 | Die Zahl in EAX wird 40 |
BREAKPOINT ON EXECUTE
---------------------------------
SYNTAX: bpx <Der Name von der API>
BREAKPOINTs-dinen fuer das starten von Softice im Laufe eines Programmes,als ihr versucht es zu debuggen oder cracken.Softice stellt den Processor dar,als er eine Funktion,die ihr in dem Breakpoint gesetzt habt.Softice unterbricht sofort die Arbeit von Windows ,sowohl alle andere Programme und bringt euch in Softice.BREAKPOITS kann man setzen,wenn man "bpx" und den Namen der Api schreibt.
Beispiel:
1.Gehen Sie in Softice (CTRL-D),und schreiben Sie "bpx GetlocalTime"
2.Gehen Sie jetzt in Windows(CTRL-D)
3.Druecken Sie zweimal auf die Uhr von WINDOWS(ueblich in dem Taskbar)
Softice erscheint beim Beginnen des CALL fuer "GetLocalTime".Wenn Sie F11 drueckt werden Sie in den Code zurueckkehren,woher die Funktion gerufen wird.
Andere Funktionen die ueblich fuer Breakpoint fuer Serialfangen gebraucht wird,ist "GetWindowTextA" oder "GetDlgItemTextA"
Beispiel:
1.Klicken Sie auf den Button Start und dann waehlen Sie "RUN"
2.Schreiben Sie etwas Dummes("dasdadadada") ABER DRUECKEN SIE NICHT 'ENTER'
3.Gehen Sie in Softice(CTRL-D)
4.Schreiben Sie: bpx GetWindowTextA
5.Dann wieder in Windows gehen,und => 'ENTER'
Softice erscheint bei dem Anfangen von der API-Funktion 'GetWindowTexta'.Druecken Sie F11,damit Sie zureuck in den Code woher die API gerufen wird kehren.
SEARCHING MEMORY
--------------------------------
Wenn Sie versuchen die Serialnummer eines Programms mit der Hilfe Softice zu cracken und der Code so viel ist,dass Sie irgendwo da Ihnen vervechselt kommt zur Hilfe SEARCHING MEMORY.Oder kuerzer gesagt,Sie koennen erfahren wo den Serialnummer des Programms in der Memory liegt.
SYNTAX: s <start>1<finish>'<string>'
Z.B. wenn Sie wollen finden,wo genau sich der String "mystring" befindet,dass Sie als Username geschrieben haben oder irgendwo anders ,dann schreiben Sie s 0 1 ffffffff 'mystring'
Breakpointing On Memory Access
-----------------------------------------------
SYNTAX:BPM <address> R/W
Das ist sehr mit Searching Memory verbunden.Wenn Sie den String finden,er spielt keine Rolle und Sie koennen nicht das Cracken fortsetzen.:).Aber durch BREAKPOINTING ON MEMORY ACCESS erweist sich fsd moeglich.
BREAKPOINTING ON MEMORY ACCESS wird als normalen BREAKPOINT gebraucht,aber fuer das Screiben und Lesen von Addressen der Memory.
Z.B. Sie suchen nach einem String und es erweist sich,dass er auf die Adresse 0157:0009AC2D ist und dann mit BPM 0157:0009AC2D werden Sie erfahren koennen,genau wann das Program ihn fuer Schreiben oder Lesen gebraucht.
Bravo!Grad haben Sie gelernt,mit Softice zu arbeiten.:))